home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Text Encoding Converter 1.4.2 / Headers / TextEncodingConverter.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-02-12  |  8.4 KB  |  277 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        TextEncodingConverter.h
  3.  
  4.      Contains:    Text Encoding Conversion Interfaces. 
  5.  
  6.      Version:    Mac OS 8
  7.  
  8.      DRI:        Julio Gonzalez
  9.  
  10.      Copyright:    © 1994-1998 by Apple Computer, Inc., all rights reserved.
  11.  
  12.      Warning:    *** APPLE INTERNAL USE ONLY ***
  13.                  This file may contain unreleased API's
  14.  
  15.      BuildInfo:    Built by:            BuildGod
  16.                  With Interfacer:    3.0d8   (PowerPC native)
  17.                  From:                TextEncodingConverter.i
  18.                      Revision:        27
  19.                      Dated:            5/4/98
  20.                      Last change by:    PKE
  21.                      Last comment:    Update includes: Delete unneeded MixedMode.i.
  22.  
  23.      Bugs:        Report bugs to Radar component "System Interfaces", "Latest"
  24.                  List the version information (from above) in the Problem Description.
  25.  
  26. */
  27. #ifndef __TEXTENCODINGCONVERTER__
  28. #define __TEXTENCODINGCONVERTER__
  29.  
  30. #ifndef __MACTYPES__
  31. #include <MacTypes.h>
  32. #endif
  33. #ifndef __TEXTCOMMON__
  34. #include <TextCommon.h>
  35. #endif
  36.  
  37.  
  38.  
  39. #if PRAGMA_ONCE
  40. #pragma once
  41. #endif
  42.  
  43. #ifdef __cplusplus
  44. extern "C" {
  45. #endif
  46.  
  47. #if PRAGMA_IMPORT
  48. #pragma import on
  49. #endif
  50.  
  51. #if PRAGMA_STRUCT_ALIGN
  52.     #pragma options align=mac68k
  53. #elif PRAGMA_STRUCT_PACKPUSH
  54.     #pragma pack(push, 2)
  55. #elif PRAGMA_STRUCT_PACK
  56.     #pragma pack(2)
  57. #endif
  58.  
  59. typedef OSType                             TECPluginSignature;
  60. typedef UInt32                             TECPluginVersion;
  61. /* plugin signatures */
  62.  
  63. enum {
  64.     kTECSignature                = FOUR_CHAR_CODE('encv'),
  65.     kTECUnicodePluginSignature    = FOUR_CHAR_CODE('puni'),
  66.     kTECJapanesePluginSignature    = FOUR_CHAR_CODE('pjpn'),
  67.     kTECChinesePluginSignature    = FOUR_CHAR_CODE('pzho'),
  68.     kTECKoreanPluginSignature    = FOUR_CHAR_CODE('pkor')
  69. };
  70.  
  71.  
  72. /* converter object reference */
  73. typedef struct OpaqueTECObjectRef*         TECObjectRef;
  74. typedef struct OpaqueTECSnifferObjectRef*  TECSnifferObjectRef;
  75. typedef OSType                             TECPluginSig;
  76.  
  77. struct TECConversionInfo {
  78.     TextEncoding                     sourceEncoding;
  79.     TextEncoding                     destinationEncoding;
  80.     UInt16                             reserved1;
  81.     UInt16                             reserved2;
  82. };
  83. typedef struct TECConversionInfo        TECConversionInfo;
  84. /* return number of encodings types supported by user's configuraton of the encoding converter */
  85. EXTERN_API( OSStatus )
  86. TECCountAvailableTextEncodings    (ItemCount *            numberEncodings);
  87.  
  88. /* fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. */
  89. EXTERN_API( OSStatus )
  90. TECGetAvailableTextEncodings    (TextEncoding             availableEncodings[],
  91.                                  ItemCount                 maxAvailableEncodings,
  92.                                  ItemCount *            actualAvailableEncodings);
  93.  
  94. /* return number of from-to encoding conversion pairs supported  */
  95. EXTERN_API( OSStatus )
  96. TECCountDirectTextEncodingConversions (ItemCount *        numberOfEncodings);
  97.  
  98. /* fill in an array of type TextEncodingPair passed in by the user with types of encoding pairs the current configuration of the encoder can handle. */
  99. EXTERN_API( OSStatus )
  100. TECGetDirectTextEncodingConversions (TECConversionInfo     availableConversions[],
  101.                                  ItemCount                 maxAvailableConversions,
  102.                                  ItemCount *            actualAvailableConversions);
  103.  
  104. /* return number of encodings a given encoding can be converter into */
  105. EXTERN_API( OSStatus )
  106. TECCountDestinationTextEncodings (TextEncoding             inputEncoding,
  107.                                  ItemCount *            numberOfEncodings);
  108.  
  109. /* fill in an array of type TextEncodingPair passed in by the user with types of encodings pairs the current configuration of the encoder can handle. */
  110. EXTERN_API( OSStatus )
  111. TECGetDestinationTextEncodings    (TextEncoding             inputEncoding,
  112.                                  TextEncoding             destinationEncodings[],
  113.                                  ItemCount                 maxDestinationEncodings,
  114.                                  ItemCount *            actualDestinationEncodings);
  115.  
  116. /* get info about a text encoding */
  117. EXTERN_API( OSStatus )
  118. TECGetTextEncodingInternetName    (TextEncoding             textEncoding,
  119.                                  Str255                 encodingName);
  120.  
  121. EXTERN_API( OSStatus )
  122. TECGetTextEncodingFromInternetName (TextEncoding *        textEncoding,
  123.                                  ConstStr255Param         encodingName);
  124.  
  125. /* create/dispose converters */
  126. EXTERN_API( OSStatus )
  127. TECCreateConverter                (TECObjectRef *            newEncodingConverter,
  128.                                  TextEncoding             inputEncoding,
  129.                                  TextEncoding             outputEncoding);
  130.  
  131. EXTERN_API( OSStatus )
  132. TECCreateConverterFromPath        (TECObjectRef *            newEncodingConverter,
  133.                                  const TextEncoding     inPath[],
  134.                                  ItemCount                 inEncodings);
  135.  
  136. EXTERN_API( OSStatus )
  137. TECDisposeConverter                (TECObjectRef             newEncodingConverter);
  138.  
  139. /* convert text encodings */
  140. EXTERN_API( OSStatus )
  141. TECClearConverterContextInfo    (TECObjectRef             encodingConverter);
  142.  
  143. EXTERN_API( OSStatus )
  144. TECConvertText                    (TECObjectRef             encodingConverter,
  145.                                  ConstTextPtr             inputBuffer,
  146.                                  ByteCount                 inputBufferLength,
  147.                                  ByteCount *            actualInputLength,
  148.                                  TextPtr                 outputBuffer,
  149.                                  ByteCount                 outputBufferLength,
  150.                                  ByteCount *            actualOutputLength);
  151.  
  152. EXTERN_API( OSStatus )
  153. TECFlushText                    (TECObjectRef             encodingConverter,
  154.                                  TextPtr                 outputBuffer,
  155.                                  ByteCount                 outputBufferLength,
  156.                                  ByteCount *            actualOutputLength);
  157.  
  158. /* one-to-many routines */
  159. EXTERN_API( OSStatus )
  160. TECCountSubTextEncodings        (TextEncoding             inputEncoding,
  161.                                  ItemCount *            numberOfEncodings);
  162.  
  163. EXTERN_API( OSStatus )
  164. TECGetSubTextEncodings            (TextEncoding             inputEncoding,
  165.                                  TextEncoding             subEncodings[],
  166.                                  ItemCount                 maxSubEncodings,
  167.                                  ItemCount *            actualSubEncodings);
  168.  
  169. EXTERN_API( OSStatus )
  170. TECGetEncodingList                (TECObjectRef             encodingConverter,
  171.                                  ItemCount *            numEncodings,
  172.                                  Handle *                encodingList);
  173.  
  174. EXTERN_API( OSStatus )
  175. TECCreateOneToManyConverter        (TECObjectRef *            newEncodingConverter,
  176.                                  TextEncoding             inputEncoding,
  177.                                  ItemCount                 numOutputEncodings,
  178.                                  const TextEncoding     outputEncodings[]);
  179.  
  180.  
  181. EXTERN_API( OSStatus )
  182. TECConvertTextToMultipleEncodings (TECObjectRef         encodingConverter,
  183.                                  ConstTextPtr             inputBuffer,
  184.                                  ByteCount                 inputBufferLength,
  185.                                  ByteCount *            actualInputLength,
  186.                                  TextPtr                 outputBuffer,
  187.                                  ByteCount                 outputBufferLength,
  188.                                  ByteCount *            actualOutputLength,
  189.                                  TextEncodingRun         outEncodingsBuffer[],
  190.                                  ItemCount                 maxOutEncodingRuns,
  191.                                  ItemCount *            actualOutEncodingRuns);
  192.  
  193. EXTERN_API( OSStatus )
  194. TECFlushMultipleEncodings        (TECObjectRef             encodingConverter,
  195.                                  TextPtr                 outputBuffer,
  196.                                  ByteCount                 outputBufferLength,
  197.                                  ByteCount *            actualOutputLength,
  198.                                  TextEncodingRun         outEncodingsBuffer[],
  199.                                  ItemCount                 maxOutEncodingRuns,
  200.                                  ItemCount *            actualOutEncodingRuns);
  201.  
  202. /* international internet info */
  203. EXTERN_API( OSStatus )
  204. TECCountWebTextEncodings        (RegionCode             locale,
  205.                                  ItemCount *            numberEncodings);
  206.  
  207. EXTERN_API( OSStatus )
  208. TECGetWebTextEncodings            (RegionCode             locale,
  209.                                  TextEncoding             availableEncodings[],
  210.                                  ItemCount                 maxAvailableEncodings,
  211.                                  ItemCount *            actualAvailableEncodings);
  212.  
  213. EXTERN_API( OSStatus )
  214. TECCountMailTextEncodings        (RegionCode             locale,
  215.                                  ItemCount *            numberEncodings);
  216.  
  217. EXTERN_API( OSStatus )
  218. TECGetMailTextEncodings            (RegionCode             locale,
  219.                                  TextEncoding             availableEncodings[],
  220.                                  ItemCount                 maxAvailableEncodings,
  221.                                  ItemCount *            actualAvailableEncodings);
  222.  
  223. /* examine text encodings */
  224. EXTERN_API( OSStatus )
  225. TECCountAvailableSniffers        (ItemCount *            numberOfEncodings);
  226.  
  227. EXTERN_API( OSStatus )
  228. TECGetAvailableSniffers            (TextEncoding             availableSniffers[],
  229.                                  ItemCount                 maxAvailableSniffers,
  230.                                  ItemCount *            actualAvailableSniffers);
  231.  
  232. EXTERN_API( OSStatus )
  233. TECCreateSniffer                (TECSnifferObjectRef *    encodingSniffer,
  234.                                  TextEncoding             testEncodings[],
  235.                                  ItemCount                 numTextEncodings);
  236.  
  237. EXTERN_API( OSStatus )
  238. TECSniffTextEncoding            (TECSnifferObjectRef     encodingSniffer,
  239.                                  TextPtr                 inputBuffer,
  240.                                  ByteCount                 inputBufferLength,
  241.                                  TextEncoding             testEncodings[],
  242.                                  ItemCount                 numTextEncodings,
  243.                                  ItemCount                 numErrsArray[],
  244.                                  ItemCount                 maxErrs,
  245.                                  ItemCount                 numFeaturesArray[],
  246.                                  ItemCount                 maxFeatures);
  247.  
  248. EXTERN_API( OSStatus )
  249. TECDisposeSniffer                (TECSnifferObjectRef     encodingSniffer);
  250.  
  251. EXTERN_API( OSStatus )
  252. TECClearSnifferContextInfo        (TECSnifferObjectRef     encodingSniffer);
  253.  
  254.  
  255.  
  256.  
  257. #if PRAGMA_STRUCT_ALIGN
  258.     #pragma options align=reset
  259. #elif PRAGMA_STRUCT_PACKPUSH
  260.     #pragma pack(pop)
  261. #elif PRAGMA_STRUCT_PACK
  262.     #pragma pack()
  263. #endif
  264.  
  265. #ifdef PRAGMA_IMPORT_OFF
  266. #pragma import off
  267. #elif PRAGMA_IMPORT
  268. #pragma import reset
  269. #endif
  270.  
  271. #ifdef __cplusplus
  272. }
  273. #endif
  274.  
  275. #endif /* __TEXTENCODINGCONVERTER__ */
  276.  
  277.